/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   15-9-24 下午4:31 Created by dwzhang
 */
package com.jade.bss.weixin.api.bonus.protocol;

import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.jade.bss.weixin.api.protocol.xml.Response;

/**
 * 查询红包响应。
 *
 * @author <a href="mailto:dwzhang@xunton.com">dwzhang</a> 
 * @version 1.0 15-9-24 下午4:31
 */
@XmlRootElement (name = "xml")
@XmlAccessorType (XmlAccessType.FIELD)
public class QueryRedPackResponse
        extends Response
{
    //商户使用查询API填写的商户单号的原路返回
    @XmlElement (name = "mch_billno")
    private String mchBillNo;
    //微信支付分配的商户号
    @XmlElement (name = "mch_id")
    private String mchId;
    //使用API发放现金红包时返回的红包单号
    @XmlElement (name = "detail_id")
    private String detailId;
    //SENDING:发放中
    //SENT:已发放待领取
    //FAILED：发放失败
    //RECEIVED:已领取
    //REFUND:已退款
    @XmlElement (name = "status")
    private String status;
    //API:通过API接口发放
    //UPLOAD:通过上传文件方式发放
    //ACTIVITY:通过活动方式发放
    @XmlElement (name = "send_type")
    private String sendType;
    //GROUP:裂变红包
    //NORMAL:普通红包
    @XmlElement (name = "hb_type")
    private String bonusType;
    //红包个数
    @XmlElement (name = "total_num")
    private long totalNum;
    //红包总金额（单位分）
    @XmlElement (name = "total_amount")
    private long totalAmount;
    //发送失败原因
    @XmlElement (name = "reason")
    private String reason;
    //
    @XmlElement (name = "send_time")
    private String sendTime;
    //红包的退款时间（如果其未领取的退款）
    @XmlElement (name = "refund_time")
    private String refundTime;
    //红包退款金额
    @XmlElement (name = "refund_amount")
    private long refundAmount;
    //祝福语
    @XmlElement (name = "wishing")
    private String wishing;
    //活动描述，低版本微信可见
    @XmlElement (name = "remark")
    private String remark;
    //发红包的活动名称
    @XmlElement (name = "act_name")
    private String actName;
    //领取红包的openid
    @XmlElement (name = "openid")
    private String openId;
    //领取金额
    @XmlElement (name = "amount")
    private long amount;
    //领取红包的时间
    @XmlElement (name = "rcv_time")
    private String receivedTime;
    //裂变红包的领取列表
    @XmlElement (name = "hblist")
    private List<GroupBonusInfo> groupBonusList;

    public String getMchBillNo()
    {
        return mchBillNo;
    }

    public void setMchBillNo(String mchBillNo)
    {
        this.mchBillNo = mchBillNo;
    }

    public String getMchId()
    {
        return mchId;
    }

    public void setMchId(String mchId)
    {
        this.mchId = mchId;
    }

    public String getDetailId()
    {
        return detailId;
    }

    public void setDetailId(String detailId)
    {
        this.detailId = detailId;
    }

    public String getStatus()
    {
        return status;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getSendType()
    {
        return sendType;
    }

    public void setSendType(String sendType)
    {
        this.sendType = sendType;
    }

    public String getBonusType()
    {
        return bonusType;
    }

    public void setBonusType(String bonusType)
    {
        this.bonusType = bonusType;
    }

    public long getTotalNum()
    {
        return totalNum;
    }

    public void setTotalNum(long totalNum)
    {
        this.totalNum = totalNum;
    }

    public long getTotalAmount()
    {
        return totalAmount;
    }

    public void setTotalAmount(long totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public String getReason()
    {
        return reason;
    }

    public void setReason(String reason)
    {
        this.reason = reason;
    }

    public String getSendTime()
    {
        return sendTime;
    }

    public void setSendTime(String sendTime)
    {
        this.sendTime = sendTime;
    }

    public String getRefundTime()
    {
        return refundTime;
    }

    public void setRefundTime(String refundTime)
    {
        this.refundTime = refundTime;
    }

    public long getRefundAmount()
    {
        return refundAmount;
    }

    public void setRefundAmount(long refundAmount)
    {
        this.refundAmount = refundAmount;
    }

    public String getWishing()
    {
        return wishing;
    }

    public void setWishing(String wishing)
    {
        this.wishing = wishing;
    }

    public String getRemark()
    {
        return remark;
    }

    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    public String getActName()
    {
        return actName;
    }

    public void setActName(String actName)
    {
        this.actName = actName;
    }

    public String getOpenId()
    {
        return openId;
    }

    public void setOpenId(String openId)
    {
        this.openId = openId;
    }

    public long getAmount()
    {
        return amount;
    }

    public void setAmount(long amount)
    {
        this.amount = amount;
    }

    public String getReceivedTime()
    {
        return receivedTime;
    }

    public void setReceivedTime(String receivedTime)
    {
        this.receivedTime = receivedTime;
    }

    public List<GroupBonusInfo> getGroupBonusList()
    {
        return groupBonusList;
    }

    public void setGroupBonusList(List<GroupBonusInfo> groupBonusList)
    {
        this.groupBonusList = groupBonusList;
    }
}
